fix(k8s): read traffic manager port from provider traffic_manager group - #219
Merged
Merged
Conversation
jcastiarena
approved these changes
Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves the provider read path for the traffic-manager listener port from
.cluster.main_traffic_manager_portto.traffic_manager.port, so it matches where the EKS provider spec declares it.Without this, the feature released in 1.15.0 does nothing when set through the provider — the provider stores the value under
traffic_manager.portand the scope reads a different location, so resolution silently falls through to the80default.Why the path changed
The scope reads
container-orchestrationvalues by the provider spec's structural path, not by the NRN key name. Confirmed against every existing read: specbalancer.public_name→.balancer.public_name, speccluster.namespace→.cluster.namespace.The EKS provider spec already has a
traffic_managergroup holdingversion(mapped tok8s.trafficManagerContainerTag). The port belongs beside it, not inclusternext toid/namespace/use_nullplatform_namespace. The new property is declared astraffic_manager.port→k8s.mainTrafficManagerPort(nullplatform/main-nrn-api#193).Changes
k8s/deployment/build_context:290— one--providerpath. Thescope-configurationspath (.deployment.main_traffic_manager_port) is unchanged; that provider has its own naming convention and sits besidedeployment.traffic_manager_config_map.k8s/deployment/tests/build_context.bats— 10 occurrences updated. The context field name, the env var, the validation and every error message stay exactly as they were; only the provider location moved.k8s/docs/configurable-http-ports.md— the documented provider path, and the adoption steps now name theTraffic Manager Portfield on the EKS provider.No CHANGELOG entry: this goes out overwriting the 1.15.0 release published yesterday, whose entry already covers the feature.
Safe to change
main_traffic_manager_portshipped yesterday in 1.15.0 and has no adopters — the provider property that would let anyone set it is only being added now, in nullplatform/main-nrn-api#193. So there is no configured value anywhere to migrate, and nothing to keep backwards-compatible.Test plan
bats k8s/deployment/tests/build_context.bats k8s/deployment/tests/traffic_manager_port_shape.bats→ 82/82 pass.grep -rn "cluster.main_traffic_manager_port" k8s/returns nothing.scope-configurationsprovider path is still present exactly once, and its precedence overcontainer-orchestrationis still covered bymain_traffic_manager_port: scope-configurations takes priority over container-orchestration.Relationship to #218
#218 also modifies
k8s/deployment/tests/build_context.bats, but the two changes are in disjoint regions of the file and merge cleanly in either order — verified, not assumed:validate_statusdebug-line assertions) and 560–620 (two full-script error tests).main_traffic_manager_porttests' jq provider path).#218 deliberately left the
main_traffic_manager_porttests untouched, since #216 had already put them in full-error-block form. No conflict resolution is needed.